/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2cf35cui;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Input Field Implementation</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * @see vn.edu.hcmus.fit.se.mdd.mbuid.adaptedaui2cf35cui.Adaptedaui2cf35cuiPackage#getInputFieldImplementation()
 * @model
 * @generated
 */
public enum InputFieldImplementation implements Enumerator {
	/**
	 * The '<em><b>Combo Box</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #COMBO_BOX_VALUE
	 * @generated
	 * @ordered
	 */
	COMBO_BOX(0, "ComboBox", "ComboBox"),

	/**
	 * The '<em><b>Data Grid View</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DATA_GRID_VIEW_VALUE
	 * @generated
	 * @ordered
	 */
	DATA_GRID_VIEW(1, "DataGridView", "DataGridView"),

	/**
	 * The '<em><b>Date Time Picker</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DATE_TIME_PICKER_VALUE
	 * @generated
	 * @ordered
	 */
	DATE_TIME_PICKER(2, "DateTimePicker", "DateTimePicker"),

	/**
	 * The '<em><b>Domain Up Down</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DOMAIN_UP_DOWN_VALUE
	 * @generated
	 * @ordered
	 */
	DOMAIN_UP_DOWN(3, "DomainUpDown", "DomainUpDown"),

	/**
	 * The '<em><b>Month Calendar</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #MONTH_CALENDAR_VALUE
	 * @generated
	 * @ordered
	 */
	MONTH_CALENDAR(4, "MonthCalendar", "MonthCalendar"),

	/**
	 * The '<em><b>Numeric Up Down</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NUMERIC_UP_DOWN_VALUE
	 * @generated
	 * @ordered
	 */
	NUMERIC_UP_DOWN(5, "NumericUpDown", "NumericUpDown"),

	/**
	 * The '<em><b>Text Box</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #TEXT_BOX_VALUE
	 * @generated
	 * @ordered
	 */
	TEXT_BOX(6, "TextBox", "TextBox"),

	/**
	 * The '<em><b>Track Bar</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #TRACK_BAR_VALUE
	 * @generated
	 * @ordered
	 */
	TRACK_BAR(7, "TrackBar", "TrackBar");

	/**
	 * The '<em><b>Combo Box</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Combo Box</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #COMBO_BOX
	 * @model name="ComboBox"
	 * @generated
	 * @ordered
	 */
	public static final int COMBO_BOX_VALUE = 0;

	/**
	 * The '<em><b>Data Grid View</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Data Grid View</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DATA_GRID_VIEW
	 * @model name="DataGridView"
	 * @generated
	 * @ordered
	 */
	public static final int DATA_GRID_VIEW_VALUE = 1;

	/**
	 * The '<em><b>Date Time Picker</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Date Time Picker</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DATE_TIME_PICKER
	 * @model name="DateTimePicker"
	 * @generated
	 * @ordered
	 */
	public static final int DATE_TIME_PICKER_VALUE = 2;

	/**
	 * The '<em><b>Domain Up Down</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Domain Up Down</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DOMAIN_UP_DOWN
	 * @model name="DomainUpDown"
	 * @generated
	 * @ordered
	 */
	public static final int DOMAIN_UP_DOWN_VALUE = 3;

	/**
	 * The '<em><b>Month Calendar</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Month Calendar</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #MONTH_CALENDAR
	 * @model name="MonthCalendar"
	 * @generated
	 * @ordered
	 */
	public static final int MONTH_CALENDAR_VALUE = 4;

	/**
	 * The '<em><b>Numeric Up Down</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Numeric Up Down</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NUMERIC_UP_DOWN
	 * @model name="NumericUpDown"
	 * @generated
	 * @ordered
	 */
	public static final int NUMERIC_UP_DOWN_VALUE = 5;

	/**
	 * The '<em><b>Text Box</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Text Box</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #TEXT_BOX
	 * @model name="TextBox"
	 * @generated
	 * @ordered
	 */
	public static final int TEXT_BOX_VALUE = 6;

	/**
	 * The '<em><b>Track Bar</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>Track Bar</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #TRACK_BAR
	 * @model name="TrackBar"
	 * @generated
	 * @ordered
	 */
	public static final int TRACK_BAR_VALUE = 7;

	/**
	 * An array of all the '<em><b>Input Field Implementation</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final InputFieldImplementation[] VALUES_ARRAY =
		new InputFieldImplementation[] {
			COMBO_BOX,
			DATA_GRID_VIEW,
			DATE_TIME_PICKER,
			DOMAIN_UP_DOWN,
			MONTH_CALENDAR,
			NUMERIC_UP_DOWN,
			TEXT_BOX,
			TRACK_BAR,
		};

	/**
	 * A public read-only list of all the '<em><b>Input Field Implementation</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<InputFieldImplementation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Input Field Implementation</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InputFieldImplementation get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			InputFieldImplementation result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Input Field Implementation</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InputFieldImplementation getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			InputFieldImplementation result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Input Field Implementation</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InputFieldImplementation get(int value) {
		switch (value) {
			case COMBO_BOX_VALUE: return COMBO_BOX;
			case DATA_GRID_VIEW_VALUE: return DATA_GRID_VIEW;
			case DATE_TIME_PICKER_VALUE: return DATE_TIME_PICKER;
			case DOMAIN_UP_DOWN_VALUE: return DOMAIN_UP_DOWN;
			case MONTH_CALENDAR_VALUE: return MONTH_CALENDAR;
			case NUMERIC_UP_DOWN_VALUE: return NUMERIC_UP_DOWN;
			case TEXT_BOX_VALUE: return TEXT_BOX;
			case TRACK_BAR_VALUE: return TRACK_BAR;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private InputFieldImplementation(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //InputFieldImplementation
